﻿
namespace Microsoft.Xna.Framework.Graphics
{
	/// <summary>
	/// Represents an effect technique.
	/// </summary>
	public sealed class EffectTechnique
	{
		#region Fields
		internal string _name;
		internal EffectAnnotationCollection pAnnotations;
		internal Effect _parent;
		internal EffectPassCollection pPasses;
		#endregion

		#region Properties
		/// <summary>
		/// Gets the EffectAnnotation objects associated with this technique.
		/// </summary>
		public EffectAnnotationCollection Annotations
		{
			get { return pAnnotations; }
		}

		/// <summary>
		/// Gets the name of this technique.
		/// </summary>
		public string Name
		{
			get { return _name; }
		}

		/// <summary>
		/// Gets the collection of EffectPass objects this rendering technique requires.
		/// </summary>
		public EffectPassCollection Passes
		{
			get { return pPasses; }
		}
		#endregion

		#region Constructor
		internal EffectTechnique(Effect effect)
		{
			_parent = effect;
		}
		#endregion
	}
}
